/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
Ext.onReady(onReadyCallAreas);
var store;
var bbarPaging;
var grid;

/*** VARIABLES DEL DETALLE GRID ***/
var dataStore;
var bbarPagingSolicitudes;
var gridSolicitudes;

var DataTipoA=[
        ['1','Reservado'],
        ['2','Confirmado']
    ];
/******** LOAD  ************************/
function Formatted_Double(valor_)
{
    var amount =valor_;
   // amount = replaceAll( amount.value,',','');
    amount =parseFloat(amount);
    amount=Math.round(amount*100)/100;
    amount = parseFloat(amount).toFixed(2);
    amount =  String(amount) ;
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) {return '';}
	var minus = '';
	if(i < 0) {minus = '-';}
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) {a.unshift(n);}
	n = a.join(delimiter);
	if(d.length < 1) {amount = n;}
	else {amount = n + '.' + d;}
	amount = minus + amount;
	 return amount;
}

var CboTipo;
var textDescripcion;
var btnbuscar;
var storeTipoArea;
var proxyTipoA;
var  storeTipoA;
var ID_tipoarea="";
var ID_Empresa ="";
function onReadyCallAreas()
{
   readControls_Login();

    btnbuscar = new Ext.Button({
        id: 'idbtnbuscarSol',
        text: 'Buscar',
        width:100,
        handler: function(){
                    EventandlerBuscar();
        }
    });
    btnbuscar.render('DIVbuscar');
    storeTipoA = new Ext.data.ArrayStore({
            fields: ['IdTipoArea', 'Descripcion'],
            data : DataTipoA // from states.js
        });
    //storeTipoA.load();
    /*************************************************/
      var estado = false;
    var AddResultItinerarios = new Ext.data.Connection();
    AddResultItinerarios.request({
        url: URLWebService + '/SessionActive',
        params: {
                tiposession: 'usuario'
                },
        method: 'POST',
        scope: this,
        callback: function(options, success, response){
        if (success){
            var xml = response.responseText;
            var re = /\n/;
            xml = xml.replace(re, '');
            re = /\r/;
            xml = xml.replace(re, '');
            var ObjectRes =  Ext.decode(xml);
            ObjectRes= ObjectRes.MensajeResultado;
            var return_Estado = ObjectRes.ESTADO;
            var return_Mensaje = ObjectRes.MENSAJE ;
            var id_UsuarioEmpresa = ObjectRes.ID_RETURN;
                if(parseInt(return_Estado) == 1)
                {
                    estado = true;
                }
                 document.getElementById('hdnIDusurioEmpresa').value = id_UsuarioEmpresa;
                Show_GridSOl_RenderLoad();

      }
      }
    });



    /***************************************************/
    
    CboTipo = new Ext.form.ComboBox({
            id:'CboTipo',
            hiddenName: 'IdTipoArea',
            store: storeTipoA,
            displayField: 'Descripcion',
            valueField: 'IdTipoArea',
            typeAhead: true,
            mode: 'local',
            triggerAction: 'all',
            emptyText:'Seleccione...',
            allowBlank:true,
            selectOnFocus:true,
            editable:true
    });
     CboTipo.render('DIVtipo');

}
function EventandlerBuscar()
{
    try
    {
      var valTipo =  ( CboTipo !=null) ? CboTipo.getValue() : '';
        dataStore.baseParams = {
                    estado: valTipo,
                    idempresa: document.getElementById('hdnIDusurioEmpresa').value
                 };
        dataStore.load();
    }
    catch(err){
        alert(err.description);
    }
}

/*********************************************************************************/
function Show_GridSOl_RenderLoad()
{
 var expander = new Ext.grid.RowExpander({
        lazyRender: false,
        enableCaching: false,
        tpl : new Ext.Template(   '<p><b>Detalle:</b> {Detalle}</p>'  )
    });
var BaresCM = new Ext.grid.ColumnModel([
     expander,
           {
                id: 'IdReserva',
                header: "ID",
                dataIndex: 'IdReserva',
                width: 10
            },{
                id: 'IdReserva',
                header: "Usuario",
                dataIndex: 'IdReserva',
                align: 'left',
                width: 100,
                renderer:renderUsuario 
            },{
                id: 'usuario.Dni',
                header: "DNI",
                dataIndex: 'usuario.Dni',
                align: 'center',
                hidden:true,
                width: 30
                //sortable: true
            },{
                id: 'fechaDesde',
                header: "Fecha",
                dataIndex: 'fechaDesde',
                align: 'center',
                renderer: renderFecha,
                width: 50
                //sortable: true
            },{
                id: 'fechaDesde',
                header: "Hora Inicio",
                dataIndex: 'fechaDesde',
                align: 'center',
                renderer: renderHoraI,
                width: 50
                //sortable: true
            },{
                id: 'fechaDesde',
                header: "Hora Termino",
                dataIndex: 'fechaDesde',
                align: 'center',
                renderer: renderHoraF,
                width: 50
                //sortable: true
            } ,{
                id: 'total',
                header: "Monto Total",
                dataIndex: 'total',
                align:'right',
                renderer:renderPrecio,
                width: 70
            }
            ,{
                id: 'estado',
                header: "",
                dataIndex: 'estado',
                renderer:renderButtonConfirmar,
                width: 50
            }
]);
 
    dataStore = new Ext.data.JsonStore({
         root: 'Reservas',
         totalProperty: 'oTotReg',
            id: '__id',
            fields: ['IdReserva',
                        'fechaHasta','fechaDesde',
                        'fechaRegistro','estado',
                        'Color',
                        'total', 'Detalle',
                        'usuario.Dni',
                        'usuario.Nombres',
                        'usuario.Apellidos',
                        'empresaarea.IdEmpresaArea',
                        'empresaarea.Nombre',
                        'empresaarea.Descripcion',
                        'empresaarea.Imagen',
                        'empresaarea.Precio',
                        'empresaarea.Direccion'
                ],
       url: URLWebService + '/ListarConfirmarReserva',
       baseParams: {
           method:   'post',
           estado: '',
           idempresa: document.getElementById('hdnIDusurioEmpresa').value

       },
        remoteSort: true,
        //sortInfo: {field:'ID_PASAJE', direction:'ASC'},
        timeout : 5000

    });
   // dataStore.setDefaultSort('ID_PASAJE', 'ASC');
    function convertDate(v, mix) {
        return new Date(parseFloat(v.slice(6, 19))).toString();
    }
    function renderButtonReservar(value, p, record,e)
   {
        var img ="";
        var url = "";
        var alt = "";

        alt = 'Reservar tu Area Deportiva';
        img = 'images/workflows.gif';
        url= 'ReservaArea.jsp?idtipoarea='+ value ;
        Return_ = "<br/><br/><center><a href='"+ url +"' ><img alt='"+ alt +"' src='images/workflows.gif'  style='cursor:hand;border-style:none;' /></a> </center>";
        return Return_;

    }
    function renderButtonConfirmar(value, p, record,e){
        var idreserva = record.data.IdReserva;
        var urlreturn ="";
         var scriptOpen="";
        if(String(value) == "1")
            {
                scriptOpen= 'javascript:EventHandler_Confirmar_Click("'+ String(idreserva) + '");';
                urlreturn = "<a href='"+ scriptOpen +"' ><img alt='' src='images/inactivo.png'  style='cursor:hand;border-style:none;' /></a> ";

            }else
                {
                    scriptOpen= 'javascript:EventHandler_NoConfirmar_Click("'+  String(idreserva) + '");';
                    urlreturn = "<a href='"+ scriptOpen +"' ><img alt='' src='images/activo.png'  style='cursor:hand;border-style:none;' /></a> ";
                }
        return urlreturn;
       // var scriptOpen= 'javascript:EventHandler_DeleteItinerario_Click("'+ value + '");';
        //return "<a href='"+ scriptOpen +"' ><img alt='' src='../Imagenes/Ext/DELETE.GIF'  style='cursor:hand;border-style:none;' /></a> ";
    }
    function renderUsuario(value, p, record,e)
    {
         var nom = record.data['usuario.Nombres'];
         var apell = record.data['usuario.Apellidos'];
         var url_ = nom +  ", " + apell;
         return url_;
    }
    function renderFecha(value, p, record,e)
    {
         var fec = record.data.fechaDesde.substring(0,10);
           fec = fec.split("/");
  var dat1 = new Date(fec[2], parseFloat(fec[1])-1, parseFloat(fec[0]));
         var fechaSel = Ext.util.Format.date(dat1, 'd/m/Y');
         
         return fechaSel;
    }
    function renderHoraI(value, p, record,e)
    {
         var fec = record.data.fechaDesde;
         var fechaSel = Ext.util.Format.date(fec,'H:i a');// Ext.util.Format.date(fec, 'd/m/Y');
         return fechaSel;
    }
    function renderHoraF(value, p, record,e)
    {
         var fecF = record.data.fechaHasta;
         var fechaSel = Ext.util.Format.date(fecF,'H:i a');// Ext.util.Format.date(fec, 'd/m/Y');
         return fechaSel;
    }


    function renderImage(value, p, record,e){
            var scriptOpen= 'javascript:ShowPopupDetails("'+ value + '","'+ e + '");';
            return "<a href='"+ scriptOpen +"' ><img alt='' src='images/AreaEmpresa/"+value+"'  style='cursor:hand;border-style:none;width:100px;height:80px;' /></a> ";
    }
    function renderPrecio(value, p, record,e){
           // var scriptOpen= 'javascript:Handler_Delete_Solicitud("'+ e + '");';
            return "<b>S/." + Formatted_Double(String(value)) + "</b>";
    }

    var myPagingToolbar = new Ext.PagingToolbar({
        pageSize: 6,
        displayInfo: true,
        displayMsg: 'Datos {0} - {1} of {2}',
        emptyMsg: "No hay registros para mostrar",
        store: dataStore
    });
    gridSolicitudes = new Ext.grid.GridPanel({
        title:'Reservas por confirmar',
         plugins: expander,
        width: 630,
        height:600,
        view: new Ext.grid.GridView({
            forceFit:true,
            deferEmptyText: false,
            emptyText: 'No hay datos.',
            getRowClass: function(record, rowIndex, rp, ds){ // rp = rowParams
                      }
        }),
        trackMouseOver:false,
        disableSelection:true,
        loadMask: true,
        store: dataStore,
        cm: BaresCM,
         viewConfig: {
          autoFill: true,
          forceFit: true
        }
    });
    gridSolicitudes.render('DIVgrid');

    dataStore.on('beforeload', function() {
            dataStore.baseParams = {
                 estado:  '',
                 idempresa:document.getElementById('hdnIDusurioEmpresa').value
            };
        });
    dataStore.load();
    dataStore.on('exception', function(obj, type, action, options, response, arg){
        handleError(type, response);
    });
}

function handleError(type, response){
    switch (type)
    {
        case 'remote':
            alert(response.raw.errors);
            break;
        case 'response':
            if ((response.isTimeout !== undefined) && (response.isTimeout === true))
            {
                alert('The request has timed out. Please try again.')
            }
            else
            {
                alert('An unexpected error has occured.');
            }
            break;
    }
}

 function EventHandler_Confirmar_Click(IdReserva)
 {
       /**********************************/
         Ext.MessageBox.show({
           msg: 'Procesando , por favor espere...',
           progressText: '...',
           width:300,
           wait:true//,
           //waitConfig: {interval:200}//,
           //icon:'ext-mb-download', //custom class in msg-box.html
           //animEl: 'mb7'
     });
      var AddResultItinerarios = new Ext.data.Connection();
        AddResultItinerarios.request({
            url: URLWebService + '/ConfirmarReserva',
            params: {
                    estado: '2',
                    idreserva:String(IdReserva)
                    },
            method: 'POST',
            scope: this,
            callback: function(options, success, response){
            if (success){
                  Ext.MessageBox.hide();
                var xml = response.responseText;
                var re = /\n/;
                xml = xml.replace(re, '');
                re = /\r/;
                xml = xml.replace(re, '');
                var ObjectRes =  Ext.decode(xml);
                ObjectRes= ObjectRes.MensajeResultado;
                var return_Estado = ObjectRes.ESTADO;
                var return_Mensaje = ObjectRes.MENSAJE ;
                Ext.MessageBox.show({
                   title: 'Resultado',
                   msg: return_Mensaje,
                   buttons: Ext.MessageBox.OK,
                   fn: function(){
                    if(return_Estado == 1)
                    {
                         EventandlerBuscar();
                    }else
                    {
                    }

                   }
               });
          }
          }
        });

 }

  function EventHandler_NoConfirmar_Click(IdReserva)
 {
       /**********************************/
         Ext.MessageBox.show({
           msg: 'Procesando , por favor espere...',
           progressText: '...',
           width:300,
           wait:true//,
           //waitConfig: {interval:200}//,
           //icon:'ext-mb-download', //custom class in msg-box.html
           //animEl: 'mb7'
     });
      var AddResultItinerarios = new Ext.data.Connection();
        AddResultItinerarios.request({
            url: URLWebService + '/ConfirmarReserva',
            params: {
                    estado: '1',
                    idreserva:String(IdReserva)
                    },
            method: 'POST',
            scope: this,
            callback: function(options, success, response){
            if (success){
                  Ext.MessageBox.hide();
                var xml = response.responseText;
                var re = /\n/;
                xml = xml.replace(re, '');
                re = /\r/;
                xml = xml.replace(re, '');
                var ObjectRes =  Ext.decode(xml);
                ObjectRes= ObjectRes.MensajeResultado;
                var return_Estado = ObjectRes.ESTADO;
                var return_Mensaje = ObjectRes.MENSAJE ;
                Ext.MessageBox.show({
                   title: 'Resultado',
                   msg: return_Mensaje,
                   buttons: Ext.MessageBox.OK,
                   fn: function(){
                    if(return_Estado == 1)
                    {
                         EventandlerBuscar();
                    }else
                    {
                    }

                   }
               });
          }
          }
        });

 }
